package com.jc.cloud.sign.bean.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.logging.log4j.message.Message;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.Range;
import org.springframework.context.annotation.Description;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.util.List;

/**
 * @BelongsPackage: com.jc.cloud.sign.bean.dto
 * @Author: whx
 * @CreateTime: 2023-10-28 15:42
 * @Description: TODO
 */

@ApiModel(description = "查询模板信息列表")
@Data
@NoArgsConstructor
public class DescribeTemplatesDTO {
    /**
    * Description:模板唯一标识，查询单个模板时使用
    */
    @ApiModelProperty("模板唯一标识，查询单个模板时使用")
//    @Schema(description="模板唯一标识，查询单个模板时使用")
    private String TemplateId;

    /**
     * Description:查询内容：
     * 0-模板列表及详情（默认），
     * 1-仅模板列表
     */
    @ApiModelProperty("查询内容：\n" +
            "0-模板列表及详情（默认），\n" +
            "1-仅模板列表")
//    @Schema(description="查询内容：0-模板列表及详情（默认）,1-仅模板列表")

//    @Pattern(regexp = "^[01]$", message = "属性值只能为0或1")
    private Integer ContentType=0;

    /**
     * Description:指定每页多少条数据，如果不传默认为20，单页最大100。
     */
    @ApiModelProperty("指定每页多少条数据，如果不传默认为20，单页最大100。")
    @Max(value = 100, message = "属性值必须小于等于100")
    private Integer Limit=20;

    /**
     * Description:查询结果分页返回，此处指定第几页，如果不传默从第一页返回。页码从0开始，即首页为0。
     */
    @ApiModelProperty("查询结果分页返回，此处指定第几页，如果不传默从第一页返回。页码从0开始，即首页为0。")
    private Integer Offset=0;

    /**
     * Description:是否返回所有组件信息。
     * 默认false，只返回发起方控件；
     * true，返回所有签署方控件
     */
    @ApiModelProperty("是否返回所有组件信息。\n" +
            "默认false，只返回发起方控件；\n" +
            "true，返回所有签署方控件")
//    @FixedArrValueValidator(fixedValue = {"true","false"},message = "参数必须为true，false")
    private Boolean QueryAllComponents=false;

    /**
     * Description:模糊搜索模板名称，最大长度200
     */
    @ApiModelProperty("模糊搜索模板名称，最大长度200")
//    @Max(value = 200, message = "属性值最大长度为200")
    @Size(max = 200, message = "属性值最大长度为200")
    private String TemplateName;

    /**
     * Description:是否获取模板预览链接，
     * 默认false-不获取
     * true-获取
     */
    @ApiModelProperty("是否获取模板预览链接，\n" +
            "默认false-不获取\n" +
            "true-获取")
//    @FixedArrValueValidator(fixedValue = {"true","false"},message = "参数必须为true，false")
    private Boolean WithPreviewUrl=false;

    /**
     * Description:是否获取模板的PDF文件链接。
     * 默认false-不获取
     * true-获取
     * 请联系客户经理开白后使用。
     */
    @ApiModelProperty("是否获取模板的PDF文件链接。\n" +
            "默认false-不获取\n" +
            "true-获取\n" +
            "请联系客户经理开白后使用。")
//    @FixedArrValueValidator(fixedValue = {"true","false"},message = "参数必须为true，false")
    private Boolean WithPdfUrl=false;

    /**
     * Description:对应第三方应用平台企业的模板ID
     */
    @ApiModelProperty("对应第三方应用平台企业的模板ID")
    private String ChannelTemplateId;
}
